"use strict";

const path = require("path");

const AV = require("leanengine");
const Koa = require("koa");
const Router = require("koa-router");
// 模板渲染
const views = require("koa-views");
// 静态资源服务
const statics = require("koa-static");
const convert = require("koa-convert");
const addSessionPlugin = require("./plugins/session");
const addCrosPlugin = require("./plugins/cros");
const addUploadPlugin = require("./plugins/upload");
const addUparamsPlugin = require("./plugins/params");
require("./cloud");
const app = new Koa();
// 添加session插件
addSessionPlugin(app);
// 添加跨域插件
addCrosPlugin(app);
// 添加上传插件
addUploadPlugin(app);
// 添加params插件,方便获取参数
addUparamsPlugin(app);

// 获取post请求参数
const bodyParser = require("koa-bodyparser");
// 加载云函数定义，你可以将云函数拆分到多个文件方便管理，但需要在主文件中加载它们
// 设置静态资源目录
app.use(convert(statics(path.join(__dirname, "public"))));

// 设置模版引擎
app.use(views(path.join(__dirname, "views")));
// 加载云引擎中间件
app.use(AV.koa());

// 是否禁用删除接口
let modules = {
  city: true,
  area: true,
  cinema: true,
  film: true,
  banner: true
};

// app.use(async (ctx, next) => {
//     let {
//         url
//     } = ctx.request;
//     let module = url.slice(7, -8);
//     if (ctx.request.url.match('delById') && !modules[module]) {
//         ctx.body = {
//             module,
//             code: '604',
//             msg: '接口暂时不可用'
//         };
//     } else {
//         await next();
//     }
// })

// 初始化路由
require("./router/adminRouter")(app);
require("./router/apiRouter")(app);

module.exports = app;
